package org.lql.algo.codecrush.week001;

/**
 * @author: liangqinglong
 * @date: 2025-07-23 16:40
 * @description: 58. 最后一个单词的长度 <a href="https://leetcode.cn/problems/length-of-last-word/description/">...</a>
 **/
public class LengthOfLastWord {

	/**
	 * 给你一个字符串 s，由若干单词组成，单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。
	 * <p>
	 * 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
	 * <p>
	 * 示例 1：
	 * <p>
	 * 输入：s = "Hello World"
	 * 输出：5
	 * 解释：最后一个单词是“World”，长度为 5。
	 * 示例 2：
	 * <p>
	 * 输入：s = "   fly me   to   the moon  "
	 * 输出：4
	 * 解释：最后一个单词是“moon”，长度为 4。
	 * 示例 3：
	 * <p>
	 * 输入：s = "luffy is still joyboy"
	 * 输出：6
	 * 解释：最后一个单词是长度为 6 的“joyboy”。
	 */
	public int lengthOfLastWord(String s) {
		s = s.trim();
		String[] split = s.split(" ");
		for (int i = split.length - 1; i >= 0; i--) {
			String str = split[i];
			if (judgeWord(str)) {
				return str.length();
			}
		}
		return 0;
	}

	private boolean judgeWord(String str) {
		int length = str.length();
		for (int i = 0; i < length; i++) {
			if (!Character.isLetter(str.charAt(i))) {
				return false;
			}
		}
		return true;
	}

	public static void main(String[] args) {
		LengthOfLastWord lengthOfLastWord = new LengthOfLastWord();
		System.out.println(lengthOfLastWord.lengthOfLastWord("   fly me   to   the moon  "));
		System.out.println(lengthOfLastWord.lengthOfLastWord("luffy is still joyboy"));
		System.out.println(lengthOfLastWord.lengthOfLastWord("luffy is still joy2boy"));
	}
}
